// --------------------------------------------------------------------------------------------------------------------
// <copyright file="ILazyBuilderUser.cs" company="AzureContrib (Open source library http://azurecontrib.codeplex.com)">
//   Microsoft Public License (Ms-PL)
// </copyright>
// <summary>
//   Any implementer would like to use the <see cref="IBuilder"/> at some point.
// </summary>
// --------------------------------------------------------------------------------------------------------------------

using System;

using AzureContrib.WindowsAzure.ServiceRuntime.ServiceLocation;

namespace AzureContrib.WindowsAzure
{
	/// <summary>
	/// Any implementer would like to use the <see cref="IBuilder"/> at some point.
	/// </summary>
	public interface ILazyBuilderUser
	{
		/// <summary>
		/// The actual <see cref="Lazy{T}"/> <see cref="IBuilder"/> which will be set at some point in time and lazily used later.
		/// </summary>
		/// <param name="lazyBuilder">The <see cref="Lazy{T}"/> <see cref="IBuilder"/> to use.</param>
		void SetBuilder(Lazy<IBuilder> lazyBuilder);
	}
}